This is a detailed summary from the Global Terrorist Database and therein India specific analysis as well.

Global Most of the cities in Iraq and Somalia are having the high numbers. * We also see cities like Colombo(LTTE), Medellin(Escobar)

Global Citizens/Police/Military are the maximum casualty.

Global Police/Military/Govt are the main targets.

India Police are the main targets of attacks and the attacks in Kashmir/Punjab are evidence. * Informats and Political rallies are also key targets.

Now let see if we can see any trend in the usage of “weaptype1_txt” over the years.

LS0tCnRpdGxlOiAiQW5hbHlzaXMgb2YgdGVycm9yaXN0IGF0dGFja3MgYWNyb3NzIHRoZSB3b3JsZCIKb3V0cHV0OiBodG1sX25vdGVib29rCnRoZW1lOiBzaW1wbGV4Ci0tLQoKYGBge3IgZ2xvYmFsX29wdGlvbnMsIGluY2x1ZGU9RkFMU0V9CmtuaXRyOjpvcHRzX2NodW5rJHNldChmaWcud2lkdGg9NiwgZmlnLmFzcD0wLjYxOCxvdXQud2lkdGggPSAiNzAlIixmaWcuYWxpZ24gPSJjZW50ZXIiLGVjaG89RkFMU0UsIHdhcm5pbmc9RkFMU0UsIG1lc3NhZ2U9RkFMU0UsIHJvd3MucHJpbnQ9MzAsY29scy5wcmludD0xMCkKCmBgYAoKCmBgYHtyIGxvYWRfbGlic30KbGlicmFyeSh0aWR5dmVyc2UpCmxpYnJhcnkocmVhZHhsKQpsaWJyYXJ5KGRhdGEudGFibGUpCmxpYnJhcnkodHJlZW1hcCkKbGlicmFyeShnZ3Bsb3QyKQpsaWJyYXJ5KGdyaWRFeHRyYSkKdGhlbWVfc2V0KHRoZW1lX2dyYXkoKSkKIyBsaWJyYXJ5KHJlYWRyKQoKdGhlbWVfc2V0KGdndGhlbWVzOjp0aGVtZV9maXZldGhpcnR5ZWlnaHQoMTIpICsgIHRoZW1lKHBsb3QudGl0bGUgPSBlbGVtZW50X3RleHQoZmFjZSA9ICJib2xkIiksdGV4dCA9IGVsZW1lbnRfdGV4dChmYW1pbHkgPSAiQXJpYWwiKSkpCiNnZW9tX2NvbChmaWxsPSIjNDc3OUM3IikrCgoKCmBgYAoKYGBge3J9CmRmPC1mcmVhZCgiL1VzZXJzL3ZpbmF5Y2h1cmkvVklOQVkvZGF0YXNldC90ZXJyb3Jpc3QvZ2xvYmFsdGVycm9yaXNtZGJfMDcxOGRpc3QuY3N2IikKZGY8LWRmJT4lZmlsdGVyKG5raWxsPjApCmBgYAoKYGBge3IsaW5jbHVkZT1GQUxTRX0KZ2xpbXBzZShkZikKYGBgCgpUaGlzIGlzIGEgZGV0YWlsZWQgc3VtbWFyeSBmcm9tIHRoZSBHbG9iYWwgVGVycm9yaXN0IERhdGFiYXNlIGFuZCB0aGVyZWluIEluZGlhIHNwZWNpZmljIGFuYWx5c2lzIGFzIHdlbGwuCgpgYGB7ciAsZmlnLmNhcD0iVHJlbmQgYWNyb3NzIHRoZSB5ZWFycyIsIGZpZy53aWR0aD02LjIsZmlnLmhlaWdodD0zLjJ9CnAxPC1kZiU+JQogIGNvdW50KGl5ZWFyKSU+JQogIGdncGxvdChhZXMoaXllYXIsbikpKwogIHNjYWxlX3hfY29udGludW91cyhicmVha3M9c2VxKDE5NzAsIDIwMTcsIGJ5ID0gNSkpKwogIGdlb21fbGluZSgpKwogIGxhYnModGl0bGU9IlRyZW5kIGFjcm9zcyB0aGUgeWVhcnMiLHN1YnRpdGxlPSJHbG9iYWwiLHg9IlllYXIiLHk9IkNvdW50cyIpCgpwMjwtZGYlPiUKICBmaWx0ZXIoY291bnRyeV90eHQ9PSdJbmRpYScpJT4lCiAgY291bnQoaXllYXIpJT4lCiAgZ2dwbG90KGFlcyhpeWVhcixuKSkrCiAgc2NhbGVfeF9jb250aW51b3VzKGJyZWFrcz1zZXEoMTk3MCwgMjAxNywgYnkgPSA1KSkrCiAgZ2VvbV9saW5lKCkrCiAgbGFicyh0aXRsZT0iVHJlbmQgYWNyb3NzIHRoZSB5ZWFycyIsc3VidGl0bGU9IkluZGlhIix4PSJZZWFyIix5PSJDb3VudHMiKQoKZ3JpZC5hcnJhbmdlKHAxLHAyLG5jb2w9MSkKcm0ocDEscDIpCgpgYGAKCiogR2xvYmFsbHksIHdlIHNlZSB0aGF0IHRoZXJlIGlzIGFuIGV4cG9uZW50aWFsIGluY3JlYXNlIGluIGF0dGFja3MgZnJvbSAyMDEyIG9ud2FyZHMgYW5kIGl0IGhhcyBza3lyb2NrZXRlZC4KKiBJbmRpYSBoYXMgc2VlbiBzcGlrZXMgaW4gMTk4NS04NiBkdWUgdG8gS2FzaG1pciAmIDIwMDctMDkgZHVlIHRvIHRoZSBNdW1iYWkgYXR0YWNrcy4KCgoKYGBge3IgLCBmaWcud2lkdGg9Ni4yfQoKZGYlPiUKICBncm91cF9ieShjb3VudHJ5X3R4dCklPiUKICBzdW1tYXJpc2UobmtpbGw9c3VtKG5raWxsKSklPiUKICB0b3BfbihuPTUwLHd0PW5raWxsKSU+JQogIHVuZ3JvdXAoKSU+JQogIHNlbGVjdChjb3VudHJ5X3R4dCxua2lsbCklPiUKICB0cmVlbWFwKGluZGV4PSJjb3VudHJ5X3R4dCIsdlNpemUgPSAibmtpbGwiLHRpdGxlID0gIlN1bW1hcnkgb2Yga2lsbHMgcGVyIGNvdW50cnkoVG9wIDUwKSIscGFsZXR0ZSA9ICJBY2NlbnQiKQoKCgpkZiAlPiUKICBncm91cF9ieShjb3VudHJ5X3R4dCkgJT4lCiAgc3VtbWFyaXNlKG5rID0gc3VtKG5raWxsKSkgJT4lCiAgdG9wX24oNTAsIHd0ID0gbmspICU+JQogIHVuZ3JvdXAgLT4gZGZrcF90b3AKCmRmICU+JSAKICBmaWx0ZXIoY291bnRyeV90eHQgJWluJSBkZmtwX3RvcCRjb3VudHJ5X3R4dCkgJT4lIAogIGdyb3VwX2J5KGNvdW50cnlfdHh0LCBpeWVhcikgJT4lIAogIHN1bW1hcmlzZShuayA9IHN1bShua2lsbCkpICU+JSAKICB1bmdyb3VwIC0+IGRma3AKCgp0cmVlbWFwKAogIGRma3AsCiAgI1lvdXIgZGF0YSBmcmFtZSBvYmplY3QKICBpbmRleCA9IGMoImNvdW50cnlfdHh0IiwgIml5ZWFyIiksCiAgdHlwZSA9ICJ2YWx1ZSIsCiAgdlNpemUgPSAibmsiLAogIHZDb2xvciA9ICJuayIsCiAgcGFsZXR0ZSA9ICJSZEJ1IiwKICB0aXRsZSA9ICJLaWxsaW5ncyBpbiBDb3VudHJ5L1llYXJzLUdsb2JhbCAoVG9wIDUwKSIsCiAgdGl0bGUubGVnZW5kID0gIk51bWJlciBvZiBraWxsZWQiLAogIGZvbnRzaXplLnRpdGxlID0gMTAKKQoKcm0oZGZrcCxkZmtwX3RvcCkKCmBgYAoKKiBJcmFxIGhhcyBzZWVuIHRoZSBtb3N0IG51bWJlciBvZiBhdHRhY2tzIGFuZCB0aGV5IGhhdmUgaGlnaCBjYXN1YWx0eS4KKiBJcmFxLCBBZmdoYW5pc3RhbiwgUGFraXN0YW4sU3lyaWEgYXJlIGFsbCByZWxhdGVkIHRvIHRoZSBHbG9iYWwgd2FyIG9uIHRlcnJvciwgSVNJUy4KKiBJbmRpYSBudW1iZXJzIGFyZSByZWxhdGVkIHRvIGFsbCB0aGUgUGFraXN0YW4gdGVycm9yaXN0IGF0dGFja3MuCiogU3JpIExhbmthIG51bWJlcnMgYXJlIGZyb20gdGhlIExUVEUgd2FycwoqIE5pZ2VyaWEvU29tYWxpYSBhcmUgZnJvbSB0aGUgQ2l2aWwgd2FycyBhbmQgQm9rbyBIYXJhbSB0ZXJyb3Jpc3QgYXR0YWNrcy4KKiBVbml0ZWQgU3RhdGVzIGlzIHJlbGF0ZWQgdG8gOS8xMSBhdHRhY2tzLiBJVCBoYXMgdGhlIGxvdyBraWxsZWQgbnVtYmVycyBidXQgaGlnaCBvbiB0aGUgd291bmRlZC4KKiBDb2xvbWJpYSBpcyBsaWtlbHkgRXNjb2JhciBhbmQgdGhlIGRydWcgcmVsYXRlZCBnYW5nIHdhcnMuCgoKYGBge3IgLCBmaWcud2lkdGg9Ni4yfQoKZGYlPiUKICBmaWx0ZXIobmtpbGw+MCklPiUKICBzZWxlY3QocmVnaW9uX3R4dCxua2lsbCklPiUKICB0cmVlbWFwKGluZGV4PSJyZWdpb25fdHh0Iix2U2l6ZSA9ICJua2lsbCIsdGl0bGUgPSAiU3VtbWFyeSBvZiBraWxscyBwZXIgcmVnaW9uIixwYWxldHRlID0gIlNldDEiKQpgYGAKCiogTWlkZGxlIEVhc3QvQWZyaWNhIGFyZSB0aGUgY2VudGVyIG9mIENpdmlsIHdhcnMgYW5kIEdsb2JhbCB0ZXJyb3Jpc3QgcmVnaW9ucy4KKiBTb3V0aCBBc2lhIHdpbGwgaW5jbHVkZSBJbmRpYSxQYWtpc3RhbiwgQWZnaGFuaXN0YW4KCgpgYGB7ciAsIGZpZy53aWR0aD02LjJ9CmRmICU+JQogIGZpbHRlcihua2lsbCA+IDApICU+JQogIGdyb3VwX2J5KHByb3ZzdGF0ZSkgJT4lCiAgc3VtbWFyaXNlKG5rID0gc3VtKG5raWxsKSkgJT4lCiAgdG9wX24oNTAsIHd0ID0gbmspICU+JQogIHVuZ3JvdXAgLT4gZGZrcF90b3AKCmRmICU+JSAKICBmaWx0ZXIobmtpbGw+MCklPiUKICBmaWx0ZXIocHJvdnN0YXRlICVpbiUgZGZrcF90b3AkcHJvdnN0YXRlKSAlPiUgCiAgZ3JvdXBfYnkocHJvdnN0YXRlLCBpeWVhcikgJT4lIAogIHN1bW1hcmlzZShuayA9IHN1bShua2lsbCkpICU+JSAKICB1bmdyb3VwIC0+IGRma3AKCgp0cmVlbWFwKAogIGRma3AsCiAgI1lvdXIgZGF0YSBmcmFtZSBvYmplY3QKICBpbmRleCA9IGMoInByb3ZzdGF0ZSIsICJpeWVhciIpLAogIHR5cGUgPSAidmFsdWUiLAogIHZTaXplID0gIm5rIiwKICB2Q29sb3IgPSAibmsiLAogIHBhbGV0dGUgPSAiUmRCdSIsCiAgdGl0bGUgPSAiS2lsbGluZ3MgaW4gUHJvdmluY2VzL1llYXJzLUdsb2JhbCIsCiAgdGl0bGUubGVnZW5kID0gIk51bWJlciBvZiBraWxsZWQiLAogIGZvbnRzaXplLnRpdGxlID0gMTAKKQoKCmRmICU+JQogIGZpbHRlcihua2lsbCA+IDAgJiBjb3VudHJ5X3R4dD09J0luZGlhJykgJT4lCiAgZ3JvdXBfYnkocHJvdnN0YXRlKSAlPiUKICBzdW1tYXJpc2UobmsgPSBzdW0obmtpbGwpKSAlPiUKICB0b3Bfbig1MCwgd3QgPSBuaykgJT4lCiAgdW5ncm91cCAtPiBkZmtwX3RvcAoKZGYgJT4lIAogIGZpbHRlcihua2lsbD4wICYgY291bnRyeV90eHQ9PSdJbmRpYScpJT4lCiAgZmlsdGVyKHByb3ZzdGF0ZSAlaW4lIGRma3BfdG9wJHByb3ZzdGF0ZSkgJT4lIAogIGdyb3VwX2J5KHByb3ZzdGF0ZSwgaXllYXIpICU+JSAKICBzdW1tYXJpc2UobmsgPSBzdW0obmtpbGwpKSAlPiUgCiAgdW5ncm91cCAtPiBkZmtwCgoKdHJlZW1hcCgKICBkZmtwLAogICNZb3VyIGRhdGEgZnJhbWUgb2JqZWN0CiAgaW5kZXggPSBjKCJwcm92c3RhdGUiLCAiaXllYXIiKSwKICB0eXBlID0gInZhbHVlIiwKICB2U2l6ZSA9ICJuayIsCiAgdkNvbG9yID0gIm5rIiwKICBwYWxldHRlID0gIlJkQnUiLAogIHRpdGxlID0gIktpbGxpbmdzIGluIFByb3ZpbmNlcy9ZZWFycy1JbmRpYSIsCiAgdGl0bGUubGVnZW5kID0gIk51bWJlciBvZiBraWxsZWQiLAogIGZvbnRzaXplLnRpdGxlID0gMTAKKQoKcm0oZGZrcCxkZmtwX3RvcCkKYGBgCgoqIEdsb2JhbAogICogQXMgd2Ugc2F3IGZyb20gdGhlIGNvdW50cnkgZ3JhcGgsIElyYXE9QmFnaGRhZC9OaW5ld2FoL0FsIEFuYmFyL1NhbGFkaW4gYXJlIHRoZSBoaWdoZXN0IGluIHRoZSBraWxsIG51bWJlci4KICAqIEJvcm5vIGlzIE5pZ2VyaWEKICAqIFB1bmphYiBpbiBJbmRpYSBzYXcgdGhlIGhpZ2hlc3QgdGVycm9yaXN0IGF0dGFja3MgZHVyaW5nIHRoZSBQYWtpc3RhbiBhbmQgS2hhbGlzdGFuIG1vdmVtZW50LgogICogTmV3IFlvcmsgaGFzIHRoZSBoaWdoZXN0IGtpbGxlZCBkdXJpbmcgdGhlIDkvMTEKKiBJbmRpYQogICogQXMgd2Ugc2F3IGVhcmxpZXIsIEomSyBhbmQgUHVuamFiIHN0YXJ0ZWQgdGhlIHRyZW5kIG9mIHZpb2xlbmNlLgogICogTWFvaXN0IGhhdmUgc2VlbiB0aGVpciByaXNlIGluIEFzc2FtL0NoaGF0dGlzZ2FyaC9NYWhhcmFzaHRyYSBldGMuIAoKCmBgYHtyLGZpZy53aWR0aD02LjJ9CgpkZiAlPiUKICBmaWx0ZXIobmtpbGwgPiAwKSAlPiUKICBncm91cF9ieShjaXR5KSAlPiUKICBzdW1tYXJpc2UobmsgPSBzdW0obmtpbGwpKSAlPiUKICB0b3Bfbig1MCwgd3QgPSBuaykgJT4lCiAgdW5ncm91cCAtPiBkZmtwX3RvcAoKZGYgJT4lIAogIGZpbHRlcihua2lsbD4wKSU+JQogIGZpbHRlcihjaXR5ICVpbiUgZGZrcF90b3AkY2l0eSkgJT4lIAogIGdyb3VwX2J5KGNpdHksIGl5ZWFyKSAlPiUgCiAgc3VtbWFyaXNlKG5rID0gc3VtKG5raWxsKSkgJT4lIAogIHVuZ3JvdXAgLT4gZGZrcAoKCnRyZWVtYXAoCiAgZGZrcCwKICAjWW91ciBkYXRhIGZyYW1lIG9iamVjdAogIGluZGV4ID0gYygiY2l0eSIsICJpeWVhciIpLAogIHR5cGUgPSAidmFsdWUiLAogIHZTaXplID0gIm5rIiwKICB2Q29sb3IgPSAibmsiLAogIHBhbGV0dGUgPSAiUmRCdSIsCiAgdGl0bGUgPSAiS2lsbGluZ3MgaW4gQ2l0eS9ZZWFycy1HbG9iYWwiLAogIHRpdGxlLmxlZ2VuZCA9ICJOdW1iZXIgb2Yga2lsbGVkIiwKICBmb250c2l6ZS50aXRsZSA9IDEwCikKCgpkZiAlPiUKICBmaWx0ZXIobmtpbGwgPiAwICYgY291bnRyeV90eHQ9PSdJbmRpYScpICU+JQogIGdyb3VwX2J5KGNpdHkpICU+JQogIHN1bW1hcmlzZShuayA9IHN1bShua2lsbCkpICU+JQogIHRvcF9uKDUwLCB3dCA9IG5rKSAlPiUKICB1bmdyb3VwIC0+IGRma3BfdG9wCgpkZiAlPiUgCiAgZmlsdGVyKG5raWxsID4gMCAmIGNvdW50cnlfdHh0PT0nSW5kaWEnKSAlPiUKICBmaWx0ZXIoY2l0eSAlaW4lIGRma3BfdG9wJGNpdHkpICU+JSAKICBncm91cF9ieShjaXR5LCBpeWVhcikgJT4lIAogIHN1bW1hcmlzZShuayA9IHN1bShua2lsbCkpICU+JSAKICB1bmdyb3VwIC0+IGRma3AKCgp0cmVlbWFwKAogIGRma3AsCiAgI1lvdXIgZGF0YSBmcmFtZSBvYmplY3QKICBpbmRleCA9IGMoImNpdHkiLCAiaXllYXIiKSwKICB0eXBlID0gInZhbHVlIiwKICB2U2l6ZSA9ICJuayIsCiAgdkNvbG9yID0gIm5rIiwKICBwYWxldHRlID0gIlJkQnUiLAogIHRpdGxlID0gIktpbGxpbmdzIGluIENpdHkvWWVhcnMtSW5kaWEiLAogIHRpdGxlLmxlZ2VuZCA9ICJOdW1iZXIgb2Yga2lsbGVkIiwKICBmb250c2l6ZS50aXRsZSA9IDEwCikKCnJtKGRma3AsZGZrcF90b3ApCmBgYAoKKkdsb2JhbAogICogTW9zdCBvZiB0aGUgY2l0aWVzIGluIElyYXEgYW5kIFNvbWFsaWEgYXJlIGhhdmluZyB0aGUgaGlnaCBudW1iZXJzLgogICogV2UgYWxzbyBzZWUgY2l0aWVzIGxpa2UgQ29sb21ibyhMVFRFKSwgTWVkZWxsaW4oRXNjb2JhcikKCiogSW5kaWEKICAqIENpdGllcyBhY3Jvc3MgSiZLICsgUHVuamFiIGFyZSBzZWVuIGFsb25nIHdpdGggTXVtYmFpIGFmdGVyIHRoZSBNdW1iYWkgYmxhc3RzLgogIAoKCmBgYHtyfQpkZiU+JQogIGdyb3VwX2J5KGF0dGFja3R5cGUxX3R4dCklPiUKICBzdW1tYXJpc2UobmtpbGw9c3VtKG5raWxsKSklPiUKICB1bmdyb3VwKCklPiUKICBnZ3Bsb3QoYWVzKHJlb3JkZXIoYXR0YWNrdHlwZTFfdHh0LG5raWxsKSxua2lsbCkpKwogIGdlb21fY29sKCkrCiAgY29vcmRfZmxpcCgpKwogIGxhYnModGl0bGU9IlRyZW5kIGFjcm9zcyBhdHRhY2t0eXBlIix4PSJhdHRhY2t0eXBlIix5PSJDb3VudHMiKQoKZGYlPiUKICBncm91cF9ieSh0YXJndHlwZTFfdHh0KSU+JQogIHN1bW1hcmlzZShua2lsbD1zdW0obmtpbGwpKSU+JQogIHVuZ3JvdXAoKSU+JQogIGdncGxvdChhZXMocmVvcmRlcih0YXJndHlwZTFfdHh0LG5raWxsKSxua2lsbCkpKwogIGdlb21fY29sKCkrCiAgY29vcmRfZmxpcCgpKwogIHNjYWxlX3lfY29udGludW91cyhsYWJlbHM9c2NhbGVzOjpjb21tYSkrCiAgbGFicyh0aXRsZT0iVHJlbmQgYWNyb3NzIHRhcmd0eXBlIix4PSJ0YXJndHlwZSIseT0iQ291bnRzIikKCgpkZiU+JQogIGdyb3VwX2J5KGF0dGFja3R5cGUxX3R4dCx0YXJndHlwZTFfdHh0KSU+JQogIHN1bW1hcmlzZShua2lsbD1zdW0obmtpbGwpKSU+JQogIHVuZ3JvdXAoKSU+JQogIHRyZWVtYXAoaW5kZXg9YygiYXR0YWNrdHlwZTFfdHh0IiwidGFyZ3R5cGUxX3R4dCIpLHZTaXplID0gIm5raWxsIix0aXRsZSA9ICJTdW1tYXJ5IG9mIGtpbGxzIGJ5IGF0dGFjayB0eXBlIGFuZCB0YXJnZXQiLHBhbGV0dGUgPSAiU2V0MiIpCgoKCmBgYAoKKkdsb2JhbAogICogQ2l0aXplbnMvUG9saWNlL01pbGl0YXJ5IGFyZSB0aGUgbWF4aW11bSBjYXN1YWx0eS4KCgoKIApgYGB7ciAsIGZpZy5oZWlnaHQ9NCxmaWcud2lkdGg9Nn0KZGYkdGFyZ3N1YnR5cGUxX3R4dDwtIHJlcGxhY2VfbmEoZGYkdGFyZ3N1YnR5cGUxX3R4dCwgJ05vdCBLbm93bicpCgpwMTwtZGYlPiUKICBjb3VudCh0YXJnc3VidHlwZTFfdHh0LHNvcnQ9VCklPiUKICBoZWFkKDMwKSU+JQogIGdncGxvdChhZXMocmVvcmRlcih0YXJnc3VidHlwZTFfdHh0LG4pLG4pKSsKICBnZW9tX2NvbCgpKwogIGNvb3JkX2ZsaXAoKSsKICBsYWJzKHRpdGxlPSJUcmVuZCBhY3Jvc3MgdGFyZ3N1YnR5cGUgR2xvYmFsbHkiLHg9InRhcmdzdWJ0eXBlIix5PSJDb3VudHMiKQoKcDI8LWRmJT4lCiAgZmlsdGVyKGNvdW50cnlfdHh0PT0nSW5kaWEnKSU+JQogIGNvdW50KHRhcmdzdWJ0eXBlMV90eHQsc29ydD1UKSU+JQogIGhlYWQoMzApJT4lCiAgZ2dwbG90KGFlcyhyZW9yZGVyKHRhcmdzdWJ0eXBlMV90eHQsbiksbikpKwogIGdlb21fY29sKCkrCiAgY29vcmRfZmxpcCgpKwogIGxhYnModGl0bGU9IlRyZW5kIGFjcm9zcyB0YXJnc3VidHlwZSBpbiBJbmRpYSIseD0idGFyZ3N1YnR5cGUiLHk9IkNvdW50cyIpCgpncmlkLmFycmFuZ2UocDEscDIsbmNvbD0xKQpybShwMSxwMikKCgpgYGAKCipHbG9iYWwKICAqIFBvbGljZS9NaWxpdGFyeS9Hb3Z0IGFyZSB0aGUgbWFpbiB0YXJnZXRzLgoKKkluZGlhCiAgKiBQb2xpY2UgYXJlIHRoZSBtYWluIHRhcmdldHMgb2YgYXR0YWNrcyBhbmQgdGhlIGF0dGFja3MgaW4gS2FzaG1pci9QdW5qYWIgYXJlIGV2aWRlbmNlLgogICogSW5mb3JtYXRzIGFuZCBQb2xpdGljYWwgcmFsbGllcyBhcmUgYWxzbyBrZXkgdGFyZ2V0cy4KCgpgYGB7ciAsIGZpZy5oZWlnaHQ9NCxmaWcud2lkdGg9Nn0KcDE8LWRmJT4lCiAgY291bnQod2VhcHR5cGUxX3R4dCxzb3J0PVQpJT4lCiAgaGVhZCgzMCklPiUKICBnZ3Bsb3QoYWVzKHJlb3JkZXIod2VhcHR5cGUxX3R4dCxuKSxuKSkrCiAgZ2VvbV9jb2woKSsKICBjb29yZF9mbGlwKCkrCiAgbGFicyh0aXRsZT0iVHJlbmQgYWNyb3NzIHdlYXB0eXBlIixzdWJ0aXRsZT0iR2xvYmFsbHkiLHg9IndlYXB0eXBlIix5PSJDb3VudHMiKQoKCnAyPC1kZiU+JQogIGZpbHRlcihjb3VudHJ5X3R4dD09J0luZGlhJyklPiUKICBjb3VudCh3ZWFwdHlwZTFfdHh0LHNvcnQ9VCklPiUKICBoZWFkKDMwKSU+JQogIGdncGxvdChhZXMocmVvcmRlcih3ZWFwdHlwZTFfdHh0LG4pLG4pKSsKICBnZW9tX2NvbCgpKwogIGNvb3JkX2ZsaXAoKSsKICBsYWJzKHRpdGxlPSJUcmVuZCBhY3Jvc3Mgd2VhcHR5cGUiLHN1YnRpdGxlPSJJbmRpYSIseD0id2VhcHR5cGUiLHk9IkNvdW50cyIpCgpncmlkLmFycmFuZ2UocDEscDIpCnJtKHAxLHAyKQpgYGAKCmBgYHtyfQpkZiR3ZWFwc3VidHlwZTFfdHh0PC0gcmVwbGFjZV9uYShkZiR3ZWFwc3VidHlwZTFfdHh0LCAnTm90IEtub3duJykKCmRmJT4lCiAgY291bnQod2VhcHN1YnR5cGUxX3R4dCxzb3J0PVQpJT4lCiAgaGVhZCgzMCklPiUKICBnZ3Bsb3QoYWVzKHJlb3JkZXIod2VhcHN1YnR5cGUxX3R4dCxuKSxuKSkrCiAgZ2VvbV9jb2woKSsKICBjb29yZF9mbGlwKCkrCiAgbGFicyh0aXRsZT0iVHJlbmQgYWNyb3NzIHdlYXBzdWJ0eXBlIix4PSJ3ZWFwc3VidHlwZSIseT0iQ291bnRzIikKCgoKCmBgYAoKCgpgYGB7cn0KZGYkd2VhcGRldGFpbDwtIHJlcGxhY2VfbmEoZGYkd2VhcGRldGFpbCwiTm90IEtub3duIikKZGYlPiUKICBjb3VudCh3ZWFwZGV0YWlsLHNvcnQ9VCklPiUKICBoZWFkKDMwKSU+JQogIGdncGxvdChhZXMocmVvcmRlcih3ZWFwZGV0YWlsLG4pLG4pKSsKICBnZW9tX2NvbCgpKwogIGNvb3JkX2ZsaXAoKSsKICBsYWJzKHRpdGxlPSJUcmVuZCBhY3Jvc3Mgd2VhcGRldGFpbCIseD0id2VhcGRldGFpbCIseT0iQ291bnRzIikKCgpgYGAKCgpOb3cgbGV0IHNlZSBpZiB3ZSBjYW4gc2VlIGFueSB0cmVuZCBpbiB0aGUgdXNhZ2Ugb2YgIndlYXB0eXBlMV90eHQiIG92ZXIgdGhlIHllYXJzLgoKYGBge3IsZmlnLndpZHRoPTYuMixmaWcuaGVpZ2h0PTN9CiMgZGYlPiUKIyAgIGdyb3VwX2J5KHdlYXB0eXBlMV90eHQsaXllYXIpJT4lCiMgICBzdW1tYXJpc2UobmtpbGw9c3VtKG5raWxsKSklPiUKIyAgIGdncGxvdChhZXMoaXllYXIsbmtpbGwpKSsKIyAgIGdlb21fY29sKCkrCiMgICBmYWNldF93cmFwKH53ZWFwdHlwZTFfdHh0KQoKCmRmICU+JQogIGdyb3VwX2J5KHdlYXB0eXBlMV90eHQsIGl5ZWFyKSAlPiUKICBzdW1tYXJpc2UobmtpbGwgPSBzdW0obmtpbGwpKSAlPiUKICB1bmdyb3VwKCkgJT4lCiAgZ2dwbG90KGFlcyh4ID0gaXllYXIsIHkgPSBua2lsbCkpICsKICBnZW9tX2NvbCgpKwogIGxhYnModGl0bGU9IlRyZW5kIGFjcm9zcyB3ZWFwdHlwZTFfdHh0LUdsb2JhbCIseT0id2VhcHR5cGUxX3R4dCIseD0iQ291bnRzIikrCiAgZmFjZXRfd3JhcCggfiB3ZWFwdHlwZTFfdHh0LCBzY2FsZXMgPSAiZnJlZV95IikKCgpkZiAlPiUKICBmaWx0ZXIoY291bnRyeV90eHQ9PSdJbmRpYScpJT4lCiAgZ3JvdXBfYnkod2VhcHR5cGUxX3R4dCwgaXllYXIpICU+JQogIHN1bW1hcmlzZShua2lsbCA9IHN1bShua2lsbCkpICU+JQogIHVuZ3JvdXAoKSAlPiUKICBnZ3Bsb3QoYWVzKHggPSBpeWVhciwgeSA9IG5raWxsKSkgKwogIGdlb21fY29sKCkrCiAgbGFicyh0aXRsZT0iVHJlbmQgYWNyb3NzIHdlYXB0eXBlMV90eHQtSW5kaWEiLHk9IndlYXB0eXBlMV90eHQiLHg9IkNvdW50cyIpKwogIGZhY2V0X3dyYXAoIH4gd2VhcHR5cGUxX3R4dCwgc2NhbGVzID0gImZyZWVfeSIpCgpgYGAKCgoKCgo=